/*
 * Copyright (C) 2021 ShangHai Quicktron Intelligent Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为上海快仓智能科技开发研制。未经本公司正式书面同意，其他任何个人、团体
 * 不得使用、复制、修改或发布本软件.
 * 版权所有 翻版必究
 */

package ATOPSTD;

/**
 * The type Able api.
 */
public class AbleAPI {


    /**
     * Ab api open int.
     *
     * @return the int
     */
    public native static int AB_API_Open();

    /**
     * Ab api close int.
     *
     * @return the int
     */
    public native static int AB_API_Close();

    /**
     * Ab gw open int.
     *
     * @param Gateway_ID the gateway id
     * @return the int
     */
    public native static int AB_GW_Open(int Gateway_ID);

    /**
     * Ab gw close int.
     *
     * @param Gateway_ID the gateway id
     * @return the int
     */
    public native static int AB_GW_Close(int Gateway_ID);

    /**
     * Ab gw status int.
     *
     * @param Gateway_ID the gateway id
     * @return the int
     */
    public native static int AB_GW_Status(int Gateway_ID);

    /**
     * Ab gw tag diag int.
     *
     * @param Gateway_ID the gateway id
     * @param Port_ID    the port id
     * @return the int
     */
    public native static int AB_GW_TagDiag(int Gateway_ID, int Port_ID);

    /**
     * Ab gw rcv msg int.
     *
     * @param Gateway_ID the gateway id
     * @param rcvmsg     the rcvmsg
     * @return the int
     */
    public native static int AB_GW_RcvMsg(int Gateway_ID, GWRcvMsg rcvmsg);

    /**
     * Ab gw rcv button int.
     *
     * @param Data     the data
     * @param Data_Cnt the data cnt
     * @return the int
     */
    public native static int AB_GW_RcvButton(byte Data[], short Data_Cnt);

    /**
     * Ab gw set poll rang int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Range the node range
     * @return the int
     */
    public native static int AB_GW_SetPollRang(int Gateway_ID, short Node_Range);

    /**
     * Ab tag rcv msg int.
     *
     * @param rcv the rcv
     * @return the int
     */
    public native static int AB_Tag_RcvMsg(TagRcvMsg rcv);

    /**
     * Ab tag rcv uid msg int.
     *
     * @param rcv the rcv
     * @return the int
     */
    public native static int AB_Tag_RcvUIDMsg(TagRcvMsg rcv);

    /**
     * Ab buz on int.
     *
     * @param Gateway_ID  the gateway id
     * @param Node_Addr   the node addr
     * @param Buzzer_Type the buzzer type
     * @return the int
     */
    public native static int AB_BUZ_On(int Gateway_ID, short Node_Addr, byte Buzzer_Type);

    /**
     * Ab lb dsp num int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Dsp_Int    the dsp int
     * @param Dot        the dot
     * @param Interval   the interval
     * @return the int
     */
    public native static int AB_LB_DspNum(int Gateway_ID, short Node_Addr, int Dsp_Int, byte Dot, short Interval);

    /**
     * Ab lb dsp str int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param d_Str      the d str
     * @param Dot        the dot
     * @param Interval   the interval
     * @return the int
     */
    public native static int AB_LB_DspStr(int Gateway_ID, short Node_Addr, String d_Str, byte Dot, short Interval);

    /**
     * Ab lb set mode int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Pick_Mode  the pick mode
     * @return the int
     */
    public native static int AB_LB_SetMode(int Gateway_ID, short Node_Addr, byte Pick_Mode);

    /**
     * Ab lb simulate int.
     *
     * @param Gateway_ID    the gateway id
     * @param Node_Addr     the node addr
     * @param Simulate_Mode the simulate mode
     * @return the int
     */
    public native static int AB_LB_Simulate(int Gateway_ID, short Node_Addr, byte Simulate_Mode);

    /**
     * Ab lb set lock int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Lock_State the lock state
     * @param Lock_Key   the lock key
     * @return the int
     */
    public native static int AB_LB_SetLock(int Gateway_ID, short Node_Addr, byte Lock_State, byte Lock_Key);

    /**
     * Ab all simple int.
     *
     * @param Gateway_ID the gateway id
     * @param Lamp_STA   the lamp sta
     * @param Gw_Port    the gw port
     * @return the int
     */
    public native static int AB_All_Simple(int Gateway_ID, byte Lamp_STA, byte Gw_Port);

    /**
     * Ab lb dsp addr int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @return the int
     */
    public native static int AB_LB_DspAddr(int Gateway_ID, short Node_Addr);

    /**
     * Ab tag reset int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @return the int
     */
    public native static int AB_TAG_Reset(int Gateway_ID, short Node_Addr);

    /**
     * Ab tag mode int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Save_Mode  the save mode
     * @param Mode_Type  the mode type
     * @return the int
     */
    public native static int AB_TAG_mode(int Gateway_ID, short Node_Addr, short Save_Mode, byte Mode_Type);

    /**
     * Ab tag count digit int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param CountDigit the count digit
     * @return the int
     */
    public native static int AB_TAG_CountDigit(int Gateway_ID, short Node_Addr, short CountDigit);

    /**
     * Ab led dsp int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Lamp_STA   the lamp sta
     * @param Interval   the interval
     * @return the int
     */
    public native static int AB_LED_Dsp(int Gateway_ID, short Node_Addr, byte Lamp_STA, short Interval);

    /**
     * Ab led status int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Lamp_Color the lamp color
     * @param Lamp_STA   the lamp sta
     * @return the int
     */
    public native static int AB_LED_Status(int Gateway_ID, short Node_Addr, byte Lamp_Color, byte Lamp_STA);

    /**
     * Ab tag complete int.
     *
     * @param Gateway_ID   the gateway id
     * @param Node_Addr    the node addr
     * @param Complete_STA the complete sta
     * @return the int
     */
    public native static int AB_TAG_Complete(int Gateway_ID, short Node_Addr, byte Complete_STA);

    /**
     * Ab tag button delay int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Delay_Time the delay time
     * @return the int
     */
    public native static int AB_TAG_ButtonDelay(int Gateway_ID, short Node_Addr, byte Delay_Time);

    /**
     * Ab aha dsp str int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Disp_Str   the disp str
     * @param BeConfirm  the be confirm
     * @param DigitSta   the digit sta
     * @return the int
     */
    public native static int AB_AHA_DspStr(int Gateway_ID, short Node_Addr, String Disp_Str, byte BeConfirm,
                                           byte DigitSta);

    /**
     * Ab aha clr dsp int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @return the int
     */
    public native static int AB_AHA_ClrDsp(int Gateway_ID, short Node_Addr);

    /**
     * Ab aha re dsp int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @return the int
     */
    public native static int AB_AHA_ReDsp(int Gateway_ID, short Node_Addr);

    /**
     * Ab aha led dsp int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Lamp_Type  the lamp type
     * @param Lamp_STA   the lamp sta
     * @return the int
     */
    public native static int AB_AHA_LED_Dsp(int Gateway_ID, short Node_Addr, byte Lamp_Type, byte Lamp_STA);

    /**
     * Ab aha buz on int.
     *
     * @param Gateway_ID  the gateway id
     * @param Node_Addr   the node addr
     * @param Buzzer_Type the buzzer type
     * @return the int
     */
    public native static int AB_AHA_BUZ_On(int Gateway_ID, short Node_Addr, byte Buzzer_Type);

    /**
     * Ab av lb dsp num int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Disp_Data  the disp data
     * @param Arrow      the arrow
     * @param Dot        the dot
     * @param Interval   the interval
     * @return the int
     */
    public native static int AB_AV_LB_DspNum(int Gateway_ID, short Node_Addr, int Disp_Data, byte Arrow, byte Dot,
                                             short Interval);

    /**
     * Ab 3 w lb dsp num int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Row        the row
     * @param Col        the col
     * @param Disp_INT   the disp int
     * @param Dot        the dot
     * @param Interval   the interval
     * @return the int
     */
    public native static int AB_3W_LB_DspNum(int Gateway_ID, short Node_Addr, String Row, String Col, int Disp_INT,
                                             byte Dot, int Interval);

    /**
     * Ab melody on int.
     *
     * @param Gateway_ID  the gateway id
     * @param Node_Addr   the node addr
     * @param Song        the song
     * @param Buzzer_Type the buzzer type
     * @return the int
     */
    public native static int AB_Melody_On(int Gateway_ID, short Node_Addr, byte Song, byte Buzzer_Type);

    /**
     * Ab melody volume int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param Volume     the volume
     * @return the int
     */
    public native static int AB_Melody_Volume(int Gateway_ID, short Node_Addr, byte Volume);

    /**
     * Ab tag rfid int.
     *
     * @param Gateway_ID the gateway id
     * @param Node_Addr  the node addr
     * @param rf_on      the rf on
     * @param save_mode  the save mode
     * @return the int
     */
    public native static int AB_TAG_RFID(int Gateway_ID, short Node_Addr, byte rf_on, byte save_mode);
}
